{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# 酶活性预测实战task：\n",
    "1. 基于T-R-train.csv数据，建立线性回归模型，计算其在T-R-test.csv数据上的r2分数，可视化模型预测结果\n",
    "+ 加入多项式特征（2次、5次），建立回归模型\n",
    "+ 计算多项式回归模型对测试数据进行预测的r2分数，判断哪个模型预测更准确\n",
    "+ 可视化多项式回归模型数据预测结果，判断哪个模型预测更准确"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%% \n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>T</th>\n",
       "      <th>rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>46.53</td>\n",
       "      <td>2.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>48.14</td>\n",
       "      <td>2.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>50.15</td>\n",
       "      <td>2.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>51.36</td>\n",
       "      <td>2.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>52.57</td>\n",
       "      <td>2.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>54.18</td>\n",
       "      <td>2.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>56.19</td>\n",
       "      <td>2.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>58.58</td>\n",
       "      <td>2.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>61.37</td>\n",
       "      <td>2.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>63.34</td>\n",
       "      <td>2.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>65.31</td>\n",
       "      <td>2.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>66.47</td>\n",
       "      <td>2.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>68.03</td>\n",
       "      <td>2.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>69.97</td>\n",
       "      <td>2.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>71.13</td>\n",
       "      <td>2.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>71.89</td>\n",
       "      <td>2.54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>73.05</td>\n",
       "      <td>2.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>74.21</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        T  rate\n",
       "0   46.53  2.49\n",
       "1   48.14  2.56\n",
       "2   50.15  2.63\n",
       "3   51.36  2.69\n",
       "4   52.57  2.74\n",
       "5   54.18  2.80\n",
       "6   56.19  2.88\n",
       "7   58.58  2.92\n",
       "8   61.37  2.96\n",
       "9   63.34  2.95\n",
       "10  65.31  2.91\n",
       "11  66.47  2.85\n",
       "12  68.03  2.78\n",
       "13  69.97  2.69\n",
       "14  71.13  2.61\n",
       "15  71.89  2.54\n",
       "16  73.05  2.45\n",
       "17  74.21  2.39"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "data_train = pd.read_csv('T-R-train.csv')\n",
    "data_train #数据预览"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "#define X_train and y_train\n",
    "X_train = data_train.loc[:,'T']\n",
    "y_train = data_train.loc[:,'rate']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化数据\n",
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt\n",
    "fig1 = plt.figure(figsize=(10,10))\n",
    "plt.scatter(X_train,y_train)\n",
    "plt.title('raw data')\n",
    "plt.xlabel('temperature')\n",
    "plt.ylabel('rate')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.series.Series'>\n",
      "<class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "print(type(X_train))\n",
    "#将X_train转换为一维数组（若不转换会因为维度问题而无法建立下面的线性回归模型）\n",
    "X_train = np.array(X_train).reshape(-1,1)\n",
    "print(type(X_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#建立线性回归模型并对该模型进行预测\n",
    "from sklearn.linear_model import LinearRegression\n",
    "lr1 = LinearRegression()\n",
    "lr1.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>T</th>\n",
       "      <th>rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>45.376344</td>\n",
       "      <td>2.334559</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>52.186380</td>\n",
       "      <td>2.775735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>61.863799</td>\n",
       "      <td>2.930147</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>73.154122</td>\n",
       "      <td>2.488971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>78.888889</td>\n",
       "      <td>1.981618</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>82.473118</td>\n",
       "      <td>1.518382</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>43.046595</td>\n",
       "      <td>2.080882</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           T      rate\n",
       "0  45.376344  2.334559\n",
       "1  52.186380  2.775735\n",
       "2  61.863799  2.930147\n",
       "3  73.154122  2.488971\n",
       "4  78.888889  1.981618\n",
       "5  82.473118  1.518382\n",
       "6  43.046595  2.080882"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#加载测试数据\n",
    "data_test = pd.read_csv('T-R-test.csv')\n",
    "X_test = data_test.loc[:,'T']\n",
    "y_test = data_test.loc[:,'rate']\n",
    "data_test\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "#这里测试数据也要转换成一维numpy数组\n",
    "X_test = np.array(X_test).reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training r2: 0.016665703886981964\n",
      "test r2: -0.7583363437351314\n"
     ]
    }
   ],
   "source": [
    "#make prediction on the training and testing data\n",
    "y_train_predict = lr1.predict(X_train)\n",
    "y_test_predict = lr1.predict(X_test)\n",
    "from sklearn.metrics import r2_score\n",
    "r2_train = r2_score(y_train,y_train_predict)\n",
    "r2_test = r2_score(y_test,y_test_predict)\n",
    "print('training r2:',r2_train)\n",
    "print('test r2:',r2_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "结果0.016... 很差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "#生成新数据\n",
    "X_range = np.linspace(40,90,300).reshape(-1,1)#新数据X的范围是40-90，然后共有300个点\n",
    "y_range_predict = lr1.predict(X_range)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化数据\n",
    "fig2 = plt.figure(figsize=(10,10))\n",
    "plt.plot(X_range,y_range_predict)\n",
    "plt.scatter(X_train,y_train)\n",
    "plt.title('prediction data')\n",
    "plt.xlabel('temperature')\n",
    "plt.ylabel('rate')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "## 多项式模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(18, 3)\n",
      "(18, 6)\n"
     ]
    }
   ],
   "source": [
    "#多项式模型\n",
    "#加入多项式特征\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "poly2 = PolynomialFeatures(degree=2)#这里degree=2代表的是2次，相应的degree=3代表的就是3次，以此类推\n",
    "X_2_train = poly2.fit_transform(X_train) #将原来的数据进行转换\n",
    "X_2_test = poly2.fit_transform(X_test)\n",
    "poly5 = PolynomialFeatures(degree=5)\n",
    "X_5_train = poly5.fit_transform(X_train)\n",
    "X_5_test = poly5.fit_transform(X_test)\n",
    "print(X_2_train.shape)\n",
    "print(X_5_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training r2_2: 0.970051540068943\n",
      "test r2_2: 0.996395455646867\n",
      "training r2_5: 0.5437845982167842\n",
      "test r2_5: 0.5437845982167842\n"
     ]
    }
   ],
   "source": [
    "#训练以及评估模型\n",
    "lr2 = LinearRegression()\n",
    "lr2.fit(X_2_train,y_train)\n",
    "y_2_train_predict = lr2.predict(X_2_train)\n",
    "y_2_test_predict = lr2.predict(X_2_test)\n",
    "r2_2_train = r2_score(y_train,y_2_train_predict)\n",
    "r2_2_test = r2_score(y_test,y_2_test_predict)\n",
    "\n",
    "\n",
    "lr5 = LinearRegression()\n",
    "lr5.fit(X_5_train,y_train)\n",
    "y_5_train_predict = lr5.predict(X_5_train)\n",
    "y_5_test_predict = lr5.predict(X_5_test)\n",
    "r2_5_train = r2_score(y_test,y_5_test_predict)\n",
    "r2_5_test = r2_score(y_test,y_5_test_predict)\n",
    "\n",
    "print('training r2_2:',r2_2_train)\n",
    "print('test r2_2:',r2_2_test)\n",
    "print('training r2_5:',r2_5_train)\n",
    "print('test r2_5:',r2_5_test)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "2次的有0.9  5次的却是0.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "#生成新数据\n",
    "X_2_range = np.linspace(40,90,300).reshape(-1,1)\n",
    "X_2_range = poly2.transform(X_2_range)\n",
    "y_2_range_predict = lr2.predict(X_2_range)\n",
    "\n",
    "X_5_range = np.linspace(40,90,300).reshape(-1,1)\n",
    "X_5_range = poly5.transform(X_5_range)\n",
    "y_5_range_predict = lr5.predict(X_5_range)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAJcCAYAAACxEXM4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3hUVeLG8e/JpJOQUEJLQu+9RAQRQVGxYRe74tr7rm3V3XXV3bXuT1fUFXsviw3BggWkI016b6GEklASEtIz5/fHDBjCAAEzuVPez/PkSXLvnck7SR7ycu655xprLSIiIiJSuyKcDiAiIiISjlTCRERERBygEiYiIiLiAJUwEREREQeohImIiIg4QCVMRERExAEqYSIhxhhjjTFtnc5RmTFmqTFmcDWPdSy/MWaSMeYG78dXGmN+OMbn+c4Yc23Npqs9xphHjTEfHOVjOhtj5lbz2O7GmBnHlk4kdKiEiYjfWWu7WGsnOZ3jaFhrP7TWnn6k43wVFmvtmdbad/2XrvYYY1p6i3HkEQ79B/Bv72NijDFvGmM2GGPyjTHzjTFn7jvQWrsIyDXGDPNjdJGApxImIiGpGqUh6BljXE5nADDGNAVOBsZ4N0UCm4BBQBLwN2C0MaZlpYd9CNxceylFAo9KmEgAMsZkGmMeMsYsM8bsNsa8bYyJrbT/RmPMGmPMLmPMWGNMMx/PcZwxZnvlMmKMucgYs8D78aPGmNHGmPe8oxVLjTEZlY7t5D09l+vdd26lfe8YY/7rPe1WYIyZboxpYoz5jzfvCmNMryqv51Tvx32NMTO9z7vVGPOSMSa6mt+XScaYJ40xs40xecaYr4wx9b379o3YXG+M2QhM9G7/gzFmuTfX98aYFpWe7zRv1jxjzEuAqbRvhDFmWqXPuxhjfvR+z7cbYx42xpwBPAxc6v0+LKyUc99pzQhjzF+9o0LZ3u93UpXM1xpjNhpjdhhj/nKY1/+OMeYVY8y3xpi9wMnGmGbGmM+NMTnGmPXGmLsqHd/XGDPXGLPHm/k57/bBxpjNVZ57/8+oiine97ne19jfxzGnAb9aa4sBrLV7rbWPWmszrbVua+3XwHqgT6XHTAKGGGNiDvV6RUKdSphI4LoSGAq0AdoDfwUwxpwCPAkMB5oCG4BPqj7YWjsH2InnD+Q+VwHvV/r8XO9jk4GxwEverxEFjAN+ABoBdwIfGmM6VHrscG+mhkAJMBP41fv5Z8Bzh3hdFcCfvMf1B4YAtx3+W3GAa4A/AM2AcmBklf2DgE7AUGPM+XhK0oVACjAV+Nj7GhsCn1d6DWuBAb6+oDEmEfgJGO/9um2BCdba8cATwP+stQnW2h4+Hj7C+3Yy0BpIwPt9ruREoAOe78UjxphOh3n9VwD/AhKBGXh+TguBVO/j/2iMGeo99gXgBWttXTy/R6MP87yHcpL3fbL3Nc70cUw3YOWhnsAY0xjP7/DSfdustVlAGZ7XLRKWVMJEAtdL1tpN1tpdeP7oXu7dfiXwlrX2V2ttCfAQ0L/KqZ593sVTvPCOGA0FPqq0f5q19ltrbQWecravRPTDUxaestaWWmsnAl9XygDwpbV2nnf040ug2Fr7nve5/gf0wgfvY36x1pZbazOBV/EUp+p631q7xFq7F89pruFVTss96h2JKcJzuutJa+1ya205nsLU0zsadhawzFr7mbW2DPgPsO0QX/McYJu19v+stcXW2nxr7axq5r0SeM5au85aW4Dn53VZldOlj1lri6y1C/EUKl9lbp+vrLXTrbVuPOUnxVr7uPfntA54HbjMe2wZ0NYY09BaW2Ct/aWamY9WMpDva4e30H8IvGutXVFld773sSJhSSVMJHBtqvTxBjwjMHjfb9i3w/uHfSeekZCqPgCGGWMS8IxcTbXWbq20v3LpKARiveWgGbDJ+4e+cobKX2N7pY+LfHye4OtFGWPaG2O+NsZsM8bswVOMGvo69hCqfl+iqjy+8v4WwAveU5+5wC48pxxT8b7GfQdaa22Vx1aWjmek7Fgc8PPyfhwJNK60rerPwef3zqvq62u27/V5X+PDlZ77ejwjUCuMMXOMMecc42s4kt14RuYOYIyJwFPuS4E7fDwuEcj1UyaRgKcSJhK40it93BzY4v14C54/vgAYY+oADYCsqk/gPeUzE7gAuJoDT0UezhYg3ftHtHKGg77GMXgFWAG0854me5hKc7Gqoer3pQzYUWmbrfTxJuBma21ypbc4a+0MYGvl5zLGmCrPTZXnaXOIffYQ2/c54OflzVzOgaX1aFR9feurvL5Ea+1ZANba1dbay/GcUn4a+Mz7+7IXiN/3JN6RxJRqfL1DWYSn7O3n/X6+iacQXuQdbay8vxkQzWFOY4qEOpUwkcB1uzEmzXsa8WE8p/jAczrxOmNMT++k5ieAWd5Te768BzyA59TVl9X82rPw/KF+wBgTZTxrfA3Dx9yzY5AI7AEKjDEdgVuP8vFXGc+aVPHA48Bn3lOgvowCHjLGdAEwxiQZYy7x7vsG6GKMudA7+ncX0OQQz/M10MQY80fjWX4h0RhzvHffdqBllcJa2cfAn4wxrbwjkvvmkJUfzYs+hNnAHmPMn40xccYYlzGmqzHmOO/rvcoYk+Id0dw34lQBrMIz6nm293ThX4FDTZDPAdx45rMdyo9Ab1Pp4hE8ZbsTMMx7ariqwcBE7yl1kbCkEiYSuD7CMzF+nfftnwDW2gl45kJ9jmc0pw2/zQHy5Us8IzFfeudRHZG1thTPpP0z8Ywy/Re4xsecnmNxH57J5fl45i/97/CHH+R94B08p/Bi8ZQnn6y1X+IZAfrEe+pzCZ7XhLV2B3AJ8BSe07ntgOmHeJ58PBc4DPN+3dV4JtoDfOp9v9MY86uPh7/lzTwFzxWCxXgudPjdvOVzGNDT+9w7gDfwLAsBcAaw1BhTgGeS/mXeOW15eC6GeAPP6OZeYDM+WGsL8cxJnO495dnPxzHb8VyNeh6Ad87dzd5c27xXVRYYY66s9LAr8ZRkkbBlPNMgRCSQGGMygRustT/V0POtxXNarkaezynGmEnAB9baN5zOIgcyxnTGcyFIX3uEPyzGmG7Aa9ZaX8tdiISNkF/MUCTcGWMuwjOvZ6LTWSR0WWuXAcdV89jFeJYnEQlrKmEiIcw7ctQZuLrKlY4iIuIwnY4UERERcYAm5ouIiIg4IOhORzZs2NC2bNnS6RgiIiIiRzRv3rwd1lqf6/AFXQlr2bIlc+fOdTqGiIiIyBEZYzYcap9OR4qIiIg4QCVMRERExAEqYSIiIiIOUAkTERERcYBKmIiIiIgDVMJEREREHKASJiIiIuIAlTARERERB6iEiYiIiDhAJUxERETEASphIiIiIg5QCRMRERFxgN9KmDEm1hgz2xiz0Biz1BjzmI9jjDFmpDFmjTFmkTGmt7/yiIiIiASSSD8+dwlwirW2wBgTBUwzxnxnrf2l0jFnAu28b8cDr3jfi4iIiIQ0v42EWY8C76dR3jdb5bDzgPe8x/4CJBtjmvork4iIiEig8OucMGOMyxizAMgGfrTWzqpySCqwqdLnm73bqj7PTcaYucaYuTk5Of4LLCIiIlJL/FrCrLUV1tqeQBrQ1xjTtcohxtfDfDzPa9baDGttRkpKij+iioiIiNSqWrk60lqbC0wCzqiyazOQXunzNGBLbWQSERERcZI/r45MMcYkez+OA04FVlQ5bCxwjfcqyX5AnrV2q78yiYiIiAQKf14d2RR41xjjwlP2RltrvzbG3AJgrR0FfAucBawBCoHr/JhHREREJGD4rYRZaxcBvXxsH1XpYwvc7q8MIhJYxszP4tnvV7Ilt4hmyXHcP7QD5/c66FocEZGw4M+RMBGR/cbMz+KhLxZTVFYBQFZuEQ99sRhARUxEwpJKmIjUime/X7m/gO1TVFbBs9+vPOYSppE1EQlmKmEiUiu25BYd1fYj0ciaiAQ73cBbRGpFs+S4o9p+JIcbWRMRCQYqYSJSK+4f2oG4KNcB2+KiXNw/tMMxPV9Nj6yJiNQ2nY4UkYPsLSlna14R2XtKyCko2f8+t7CUojI3RaUVFJWVU1RaQVmFxRVhPG/G8z46MoKkuCiS4qJIjve8rxcfzfUntuLTuZvYnl9C6r45XK7p8PzjkLcZktJgyCPQffgRMzZLjiPLR+E61pE1EZHaphImEsZ27S1lcVYeq7fns27HXtbn7GXdjgK27yk56NjoyAjqxUcRHx1JbJSL+GgX8dGRRLkMFRYq3G4q3JYKt2V3YSkbdu4lt6iMPUVluKvcjCzCe8Oyj3+ex7zds+hg29MxIo4OuZtIHHeXZ+cRitj9QzscMCcMft/ImohIbVMJEwkTJeUVLNiYy/xNuSzenMfCzbls3v3bSJIx0KJ+PCe2TaF1Sh3S6sWRkhhDo8RYUhJjqBsbiTG+bvd6eG63Jb+knF17S8naXURWbiGbdxeRtbuIzCUr+LKsHwWcsv/4tNJsen2+muP2ZtKnRT06NqmLK+Lgr7tv8r2ujhSRYGU866UGj4yMDDt37lynY4gEvPIKN0u27GH6mh3MXLuTOZm7KCl3A5BeP44GdWJYkpVHeaVhqrgoF09e2K32isyjyVhryaIhK9zNWWnTWepuyTx3O7ZTH4CEmEh6t6jHiW0bMLhDI9o1SjimMigi4gRjzDxrbYbPfSphIqFjb0k5U1bl8P3SbUxckc2e4nIAOjZJpH+bBpzQpiEZLepRr040A56a6HNOVWpyHNMfPOWg7X7xfFfI23TQZls3nc0jZjNvw27mbtjF7PW7WLW9YH++QR1SGNw+hYHtUoiLdh30+GOldcdEpKYdroTpdKRIkNtTXMb4Jdv4Yek2pqzeQWm5m+T4KE7r3IRBHVLo37oBKYkxBz0uIK4uHPIIjLsLyip9zag4zKmPkF4/nvT68ftL0JbcIiavyuHnFdl8NT+Lj2ZtJD7axamdGnNO96YM6pBCTOSxFzKtOyYitU0lTCQIlVe4mbpmB5/P28yPy7ZTUu4mNTmOK49vzumdm3Bcy3pEug6/Ak1AXF24b/L9hCNfHdksOY7L+zbn8r7NKS13M3v9Lr5ZvJXvlmxl7MItJMZEclqXxlzUO43+rRsQ4WMe2eH4Y0V/EZHD0elIkSCyLqeAj2dv5Mv5W9hRUEJyfBTn9mjGBb1S6ZmefFRzpaqO/IADc8JqQFmFm+lrdvD1oq18v3Qb+cXltGgQz6XHpXNxnzQaJcZW63laPfgNvv41NMD6p86u0cwiEj50OlIkiLndlkmrsnlnxgamrMohMsJwcsdGXNQ7jZM7HvspuFC5ujDKFcHgDo0Y3KER/zy/K+OXbOOj2Rt5ZvxKnvthFUM6NeLqfi0Z0LbBYUtqQIwMikhY0UiYSIDKLy7jf3M28d7MDWzcVUijxBiuPL4Fl/dNp1Hd6o3uhLO1OQX8b84mPpu3mV17S+nUtC43DmzFOd2bER158KnaUBkZFJHAoqsjRYLIrr2lvD19Pe/MyCS/uJxoVwSlFW6aJcXywBkdVQiOUnFZBWMXbOH1qetYnV1A47oxjDihFVcc35ykuKgDjtXVkSJS01TCRILAtrxiXp+6jo9mbaSorILuaUms3Ja/f20v0MjM72GtZdKqHN6Yuo7pa3aSGBvJ9Se24g8ntqJubNSRn0BE5BiohIkEsJz8El6auJqPZ2+iwlrO69mMWwe1YcTbc5xfxytELcnK48WJq/l+6XbqxkZyw8DWXDegJYkqYyJSwzQxXyQA7Sku440p63hj2npKyt0Mz0jjtsFtSa8fDwTIOl4hqmtqEq9encGSrDz+89NqnvtxFW9OW8/Ng1rzhwGtiI2quQVgRUQORSVMpJYVl1XwwS8bePnnNewuLOOc7k2557T2tE5JOOA4Xa3nf11Tk3jj2gwWb87j+Z9W8cz4lXz4y0YeOKMDw7o3O+q1xkREjsbhV3MUkRpjreWHpds47fnJ/POb5XRNTWLcHSfy0hW9DypgAPcP7UBclRGZuCgX9w/tUFuRw0a3tCTeGnEcH9/Yj3p1orj7kwVc8N/pzMnc5XQ0EQlhmhMmUgvWZBfw+NfLmLIqh3aNEnhkWGcGtks54uN0tV7tc7stX3q/79v2FHNWtyb89ezOPkcg9fMRkSPRxHwRh+QXlzFywmrenp5JXLSLP53anqv7tyDqCLcUEucVlVbw+tR1/HfSGiKM4U+ntmfEgJb7f3ZaV0xEqkMlTMQBPy7bzt/GLGF7fjHD+6Rz/xkdaJhw8I20JbBt2lXIo2OXMmFFNh2bJPLP87uS0bI+A56aqKtXReSIdHWkSC3KyS/h0XFL+WbRVjo2SeSVq3rTq3k9p2PJMUqvH88b12bww7LtPDZ2KRePmsllx6X7LGCgq1dFpPpUwkRqiLWWT+dt5l/fLKeotIL7Tm/PTSe18XmLHAkuxhiGdmnCwHYNeeGn1bwxbT0RBtw+TiTo6lURqS6VMJEasC2vmPs/W8jU1Tvo27I+T1zYjbaNDr7iUYJbfHQkD53VibO7N+Wm9+axbU/xAft19aqIHA39F13kdxq3cAtD/zOFuZm7+cd5Xfjkpn4qYCGue1oykx8YzKmdGu3f1qBOtCbli8hRUQkTOUZ5hWXc/cl87vx4Pq0a1uHbuwdydf+WWuAzTMREunjj2uMYc/sA2jZKYOfeUhZsyqW40tWSIiKHo9ORIsdgxtod3Dt6Idn5JdxzWntuG9yGSC07EZZ6pifz9Z0n8vT4Fbw9PZNZ63fx4uU9adso0eloIhLg9FdD5ChUuC3P/7iKK9+YRVyUiy9uPYG7hrRTAQtzsVEu/j6sC2+POI7sPcWc8+I0Pp69kWBbAkhEapfWCROppuz8Yu7+eAEz1+3kwl6p/OP8rtSJ+W0wWaunC0D2nmLu/dRzkcaZXZvw1EXdSYqLcjqWiDhE64SJ/E7T1+zg7k8WUFBSxjMXd+eSPmkY89vcr6qrp2flFvHQF4sBVMTCTKO6sbx7XV/emLaOZ8avZPnWabxyVR86Na3rdDQRCTA6hyJyGG635YWfVnPVm7NIiovkq9tPZHhG+gEFDODZ71cecPsagKKyCp79fmVtxpUAERFhuOmkNnxyUz+Kyiq44L/T+XL+ZqdjiUiAUQkTOYT84jJuen8ez/+0igt6pjL2jhPp0MT3ZOtDrZKu1dPDW0bL+nx950B6pCXzp/8t5K9jFlNSrqsnRcRDpyNFfFiXU8CN780lc2chj53bhWv6tzho9KuyZslxPm9jo9XTJSUxhg9vOJ5nv1/Jq1PWsSRrD6Ou6kOTpFjNIxQJcxoJk/C1aDQ83xUeTfa8XzQagJ9XZHPeS9PZXVjGB9cfz7UntDxsAQO4f2gH4qJcB2zT6umyT6QrgofO6sSoq3qzens+5740jZE/reahLxaTlVuE5bd5hGPmZzkdV0Rqia6OlPC0aDSMuwvKfhu9spFxvNLmFZ5dFE3npnV59eo+pNWLr/ZTalRDqmPFtj3c8O5cNu/2fao6NTmO6Q+eUsupRMRfdHWkSFUTHj+ggJVaFw8XXcNnC6M5t0cznr6oO3HRrsM8wcHO75Wq0iVH1LFJXb66fQB9/vmTz/2aRygSPnQ6UsJT3m9XquXZOlxb9iCfVQziT5Gf8cJlPY+6gIkcjQYJMTRLivW5T/MIRcKHSpiEp6Q0ADa6G3Fh6aPMc7fn+aiXubvBnCPO/xKpCQ+c0ZHYyAP/CY6NjNA8QpEwohIm4WnII8yL6MoFpY+x09bl/egnuSD2VxjyiNPJJEyc3yuVpy7qTmqlka+E2Eh6NU92MJWI1CbNCZOw9GPkIO4oiaepaydvuZ6kdb1IGDISug93OpqEkcrzCOdt2MX1787lwv/O4K0Rx9EjXWVMJNTp6kgJO6PnbuKhLxbTtVld3hpxHA0SYgBd3SjOW5tTwLVvzWZnQSkvX9mLUzo2djqSiPxOh7s6UqcjJWxYaxk1eS0PfLaIE9o04KMb+x1QwLRmkzitTUoCX9x2Am0a1eHG9+bx6dxNTkcSET9SCZOw4HZbnvh2OU99t4JhPZrx5rXHUSfmt7PxuvejBIpGibF8clN/TmjTgPs/W8Tb09c7HUlE/EQlTEJeeYWb+z5byOtT13Nt/xa8cGlPoqtclaZ7P0ogSYiJ5I1rMxjapTGPjVvGyAmrCbapIyJyZCphEtJKy93c+fF8vvg1i3tOa8+j53YhIuLgJSgOtTaT1mwSp8REunj5it5c2DuV535cxRPfLlcREwkxKmESsorLKrj1g3l8t2QbfzunM3cNaXfINcB070cJRJGuCP59cQ+u7d+C16eu5+EvF1PhVhETCRVaokJCUlFpBTe9P5epq3fwj/O7cnW/Foc9ft9VkLo6UgJNRITh0XO7kBgbxUs/r6GotIL/G94Tl48RXREJLiphEnL2lpRz/btzmLV+F89c3J3hGenVepzu/SiByhjDfUM7EBft4tnvV2KB/7ukB5EuncwQCWYqYRJS8ovLuO7tOczflMt/Lu3JeT1VqiR03H5yW4yBZ8avxFp4briKmEgwUwmTkLG3pJzr3p7Dgk25vHh5L87q1tTpSCI17rbBbTEYnh6/Ags8ryImErRUwiQkFJVW8Id3PCNg+wqYVsCXUHXr4DYYA099twL4rYjpd14kuKiESdArLqvgxvfmMidzF89f2nN/AXvoi8X7F2DdtwI+oD9KEhJuGdQGAzz53QoMMLh9Cn8Zs0S/8yJBRGPYEtSKyyq4+f15TF+7g2cu7rF/DphWwJdwcPOgNvz5jI6MXbiFv361RL/zIkFGJUyCVmm5m9s//JXJq3J48oJuXNwnbf8+rYAv4eLWwW2485S2FJZW+Nyv33mRwKUSJkGpwm25Z/QCJqzI5h/nd+Wyvs0P2K8V8CWc3HNae+rEuHzu0++8SOBSCZOgY63lb18t4etFW3nozI4+F2LVCvgSTowx/PO8rriq3BFCv/MigU0T8yXo/PuHlXw0ayO3DGrDzYPa+DxGK+BLuLmgdxrWsn9yflJcFI+d20W/8yIBTCVMgsrrU9bx8s9rubxvOn8+4/D/w9cK+BJuLuyTxrCezbj1g1+ZsGK7bm0kEuB0OlKCxug5m/jXt8s5u1tT/nl+t0PejFsknEW5Injpil5ktKjHPaMXMG31DqcjicghqIRJUPhh6TYe/GIRA9s15LlLe+h/+CKHERvl4o1rjqN1wwRufn8uS7LynI4kIj6ohEnAm7dhN3d+PJ9uacm8enUfYiJ9XwUmIr9Jio/i3T/0JTk+mhFvz2bDzr1ORxKRKlTCJKCtyynghnfn0DQplreuzSA+WtMYRaqrSVIs7/6hLxVuy9VvziYnv8TpSCJSiUqYBKwdBSWMeHsOxhjeua4vU1fvYMBTE2n14DcMeGoiY+ZnOR1RJOC1bZTAWyOOIye/hOvemc3eknKnI4mIl0qYBKTC0nKuf2cO2fnFvHltBgs25fLQF4vJyi3C8tt98VTERI6sV/N6vHxlL5Zt2cPdn8ynwm2djiQiqIRJACqvcHPHR/NZnJXHS5f3plfzeroXpMjvdErHxjx2bhd+Wp7NP75e5nQcEUHrhEmAsdby6LilTFyRzb8u6MqpnRsDuhekSE24un9LMncW8ua09bRoEM91A1o5HUkkrKmESUB5d0YmH/yykZtPas2Vx/92O6JmyXFk+Shcui+eyNF5+KxObN5dyOPjlvHixDXs3luqO0qIOESnIyVg/Lwym8e/XsZpnRvz5zM6HrBP94IUqRmuCMOQjo3BwK69pZpjKeIglTAJCCu35XPnR/Pp2KQu/7m0JxFVFmM9v1cqT17YjdTkOAyQmhzHkxd20//cRY7BCxNWY6vMzdccS5Hap9OR4rgdBSX84Z05xEe7eHNEBnVifP9a6l6QIjVDcyxFAoNGwsRRxWUV3Pz+PHYUlPD6NRk0TdIcLxF/O9RcyqZJsbWcRCS8qYSJY6y1PPzFYuZt2M1zw3vSIz3Z6UgiYcHXHEvwrCcmIrVHJUwc89b0TL6Yn8UfT23H2d2bOh1HJGxUnWPZLCmWPs3r8e2Srfy4bLvT8UTChrFVZ2cGuIyMDDt37lynY8jvNH3NDq55azZDOjZi1FV9DpqILyK1q7isguGvzmRtdgGf33YCHZvUdTqSSEgwxsyz1mb42qeRMKl1m3YVcsdHv9K6YR2e83ElpIjUvtgoF69d7bkw5sb35pJbWOp0JJGQpxImtaqwtJyb3p9Hhdvy2jUZJBziSkgRqX1NkmJ59eo+bM8r4a5PFugekyJ+phImfjFmfhYDnppIqwe/YcBTExkzPwtrLQ98togV2/Yw8vJetGpYx+mYIlJFr+b1ePTcLkxZlcPzP65yOo5ISNMwhNS4MfOzeOiLxftvuL1vNe6JK7L5etFW/nxGRwZ3aORwShE5lMv7prNwUy4v/byG7mlJnN6lidORREKSRsKkxj37/cr9BWyforIKxi7cwtndmnLLoNYOJROR6jDG8Nh5XeielsQ9oxeyNqfA6UgiIUklTGrc4Vbdfvri7hijifgigS42ysUrV/UhOjKCW96fR0FJudORREKOSpjUuEOtxt0oMUYT8UWCxJj5WQwfNZNde0tZnV3Ala//QrAtaSQS6FTCpMb5Wo07ymV4+KxODiUSkaOxb15nVqVR7YWb87hn9EIHU4mEHpUwqXH7VuOuHx8NQJ1oF89e3EM33xYJEr7mdQJ8OT+L+Rt3O5BIJDSphIlfdEtLorTCTc/0ZOY/croKmEgQOdy8zjs+mq+FXEVqiEqY1Ljisgpu//BXoiMj+O+VvYmO1K+ZSDA51LzOlIQYsvOLuXf0QtxayFXkd9NfR6lx//h6GSu25fPc8B6H/MdcRAKXr3mdcVEu/nJ2J/5yVicmrMjm9anrHEonEjp0qZrUqG8Xb+XDWRu5+aTWWpBVJEjtmz7w7Pcr2ZJbRLPkOO4f2oHze6VirWV25i6e+X4lvVvU47iW9R1OKxK8TLBdcpyRkWHnzp3rdAzxYdOuQs4aOZXWKQl8enN/nYYUCVF7issY9uI0SsrcfHv3QOrXiXY6kkjAMsbMs9Zm+Nrnt7+Sxph0Y8zPxpjlxpilxpi7fRwz2BiTZ4xZ4KhwSbcAACAASURBVH17xF95xL/KKtzc9cl8sPDS5b1UwERCWN3YKF6+oje79pbywGeLtH6YyDHy51/KcuBea20noB9wuzGms4/jplpre3rfHvdjHvGj//thFfM35vLURd1Jrx/vdBwR8bOuqUn8+cyO/LR8Ox/8ssHpOCJByW9zwqy1W4Gt3o/zjTHLgVRgmb++ptScMfOzfM4H8WXKqhxGTV7LFcc35+zuTWs5qYg45boTWjJlVQ7//GY5fVs1oEP2dzDhccjbDElpMOQR6D7c6ZgiAatWzhkZY1oCvYBZPnb3N8YsNMZ8Z4zpcojH32SMmWuMmZuTk+PHpAIHrpZtgazcIh76YjFj5mcddGx2fjH3jF5Ah8aJPHKOr4FOEQlVERGGf1/Sg8TYKO56exLFY++FvE2A9bwfdxcsGu10TJGA5fcSZoxJAD4H/mit3VNl969AC2ttD+BFYIyv57DWvmatzbDWZqSkpPg3sPhcLbuorIJnv195wDa323LP/xZSUFLOS1f0IrbKJe0iEvpSEmP49yXdWZkXwZNFFxy4s6zIMzImIj75tYQZY6LwFLAPrbVfVN1vrd1jrS3wfvwtEGWMaejPTHJkh1otu+r2V6esY9qaHTx2bhfaNU6sjWgiEoAGd2jE9a5vebdiKD9V9D5wZ95mZ0KJBAF/Xh1pgDeB5dba5w5xTBPvcRhj+nrz7PRXJqmeQy2wWnn7kqw8nvtxJWd3a8rwjPTaiiYiAeqBBtPoYtZzf9nNbLfJv+1ISnMulEiA8+dI2ADgauCUSktQnGWMucUYc4v3mIuBJcaYhcBI4DKra50dd6jVsu8f2gHw3Jboj/9bQP060fzrgq54e7SIhLGYU//CyPjXKSaKe8puw20NRMV5JueLiE/+vDpyGnDYv87W2peAl/yVQY7N4VbLBnjquxWsyS7g/ev7khyvRRpFBOg+nDbA38d9zYP5F/Na1JXcMmyQro4UOQzdtkh8Or9Xqs8lKaauzuGdGZmMOKElA9vpIgkRqaT7cC7tdglTPvqV/1t2NgMbDsDnJe8iAqiEyVHILSzlvk8X0rZRAg+e2dHpOCISQCqvLdi4bixxUS7u+d9Cxt45gJhIXTkt4ovuLSPVYq3lL2OWsLOglP9c2lPLUYjIflXXFty2p5jiMjcrt+fz/I+rnY4nErBUwqRaxizI4ptFW/nTae3pmprkdBwRCSC+1hYsrXATH+3i1SlrmZu5y6FkIoFNJUyOKCu3iEfGLCWjRT1uGdTG6TgiEmAOtbZgYWkFafXiuPfThewtKa/lVCKBTyVMDsvtttw7egFua3lueE9cEVqOQkQOdKi1BVOT4/i/S3qycVchT3y7vJZTiQQ+lTA5rLdnZPLLul38fVgXmjeIdzqOiASgw60t2LdVfW4c2JoPZ21k8ird+1ekMpUwOaT1O/by7PcrGNKxEZdkaNVrEfHt/F6pPHlhN1KT4zB4RsCevLDb/mVu7jmtPe0bJ/DAZwvJKyxzNqxIADHBtkB9RkaGnTt3rtMxQp7bbbn0tZms3JbPj/cMonHdWKcjiUgQW5KVx/kvT+fs7k154bJeTscRqTXGmHnW2gxf+zQSJj69OzOTOZm7eWRYFxUwEfnduqYmcdeQdny1YAvfLNrqdByRgKASJgfJ3LGXp8ev4OQOKVzU++BV80VEjsVtg9vQIy2Jv321hJ0FJU7HEXGcSpgcwO22PPD5IqJcETx5YXfdnFtEakykK4JnL+lBfnEZj41b5nQcEcephMkB3puZyez1u/jbOZ1pkqTTkCJSs9o3TuSOk9sxduEWflq23ek4Io7SvSNlvw079/L0+JUM7pDCJX10NaSI+Metg9vwyZyN3PT+XNzWczXl/UM77L+aUiRcaCRMAO9pyM8WERlhePLCbjoNKSJ+8+3irewqKMXtvTg/K7eIh75YzJj5Wc4GE6llKmECwAezNjDLexqyaZLv1a9FRGrCs9+vpKTCfcC2orIKnv1+pUOJRJyhEiZs2lXIU9+t4KT2KVqUVUT87lD3mjzUdpFQpRIW5qy1/HXMEgCdhhSRWnGoe00eartIqFIJC3PjFm1l8qoc7h/agVT9AygitcDXvSYBrUsoYUclLIzlFpby+Lil9EhL4pr+LZ2OIyJhouq9JpsmxVIvPoqvF2+luKzC6XgitUZLVISxJ75dzu7CMt77w/G4InQaUkRqz/m9Ug9YkmLKqhyueWs2L05czf1DOzqYTKT2aCQsTM1Yu4PRczdz48DWdG5W1+k4IhLmTmqfwoW9U3ltyjpWb893Oo5IrVAJC0PFZRX85cslNK8fz91D2jkdR0QEgL+c1Yk6MZE8/OVi3PsWERMJYSphYeiliWtYv2MvT1zQjbjogyfHiog4oUFCDA+f2Yk5mbv5dN4mp+OI+J1KWLhYNBqe78rKR7oy6ueVXNiqjBPbNXQ6lYjIAS7JSKNvy/o88e0KdhSUOB1HxK9UwsLBotEw7i7cuZt5sOwGEinkr9n3ebaLiAQQYwz/uqArhaXlPPHNcqfjiPiVSlg4mPA4lBXxQcWpzLft+FvU+9SvyPFsFxEJMO0aJ3LzSW34Yn4WM9bscDqOiN+ohIWDvM1k22SeKb+UgRGLuCBi2v7tIiKB6I5T2tKiQTx/GbNEa4dJyFIJCwdJafyr7EpKieLxyHfYf2eiJN0nUkQCU2yUi3+e35X1O/byyqS1TscR8QuVsDAwo+ujfOUewC2ucbSK2ObZGBUHQx5xNpiIyGEMbJfCeT2b8cqktazNKXA6jkiNUwkLcaXlbh5ZnEJ6HTe3NZgHGEhKh2Ejoftwp+OJiBzWX8/uTGxUBH/5cjHWau0wCS26bVGIe2v6etZkF/DmtX2J7bTA6TgiIkclJTGGB8/sxMNfLubL+Vlc2FvTKCR0aCQshG3JLeKFn1ZzWufGDOnU2Ok4IiLH5LLj0umRnswT364gv7jM6TgiNUYlLIQ9Pm4ZFsvfh3V2OoqIyDGLiDD847wu7Nxbwn9+Wu10HJEaoxIWoiatzGb80m3ceUo70urFOx1HROR36Z6WzGXHNeedGZms3KYbfEtoUAkLQcVlFfx97FJaN6zDDQNbOR1HRKRG3D+0A4mxkfx97BJN0peQoBIWgl6dvI4NOwt5/LyuxETqBt0iEhrq14nmvtM78Mu6XYxbtNXpOCK/m0pYiNm4s5D/TlrDOd2b6gbdIhJyLu/bnK6pdfnXN8vYW1LudByR30UlLMQ8/vVSIiMMfz1bk/FFJPS4IgyPnduV7XtKGDlRk/QluKmEhZDJq3L4aXk2dw1pR5OkWKfjiIj4RZ8W9bikTxpvTfOsgygSrFTCQkRZhZvHxy2lVcM6XDdAk/FFJLT9+cyOxEa5eGzcUk3Sl6ClEhYi3pu5gbU5e/nr2Z2IjtSPVURCW8OEGO49rT1TV+9g/JJtTscROSb6ax0CdhaU8J+fVjGofQqndGzkdBwRkVpxVb8WdGySyD++XkZRaYXTcUSOmkpYCPj3D6soKq3gb+d0xhjjdBwRkVoR6YrgsXO7sCWvmNemrHM6jshRUwkLckuy8vhkzkauPaElbRslOB1HRKRWHd+6AWd3a8qoyWvZmlfkdByRo6ISFsSstTw+bhn146O5a0g7p+OIiDjiwTM7UmEtz45f6XQUkaOiEhbEvl60ldmZu7hvaAeS4qKcjiMi4oj0+vHccGIrvpifxYJNuU7HEak2lbAgVVRawZPfLqdLs7oMz0h3Oo6IiKNuO7ktKYkxPK4lKySIqIQFqVGT17Ilr5i/D+uCK0KT8UUkvCXERHL/0A78ujGXsQu3OB1HpFpUwoJQVm4Royav5ZzuTenbqr7TcUREAsLFvdPo0qwuT3+3QktWSFBQCQtCT3+3AmPgobM6OR1FRCRgREQY/j7Ms2TF61O1ZIUEPpWwILNgk2eo/caBrUlNjnM6johIQOnbqj5nd2vKK5PWsi2v2Ok4IoelEhZErLX865tlNEyI4eZBbZyOIyISkPYtWfHM+BVORxE5LJWwIPL90m3MydzNPae1JyEm0uk4IiIBSUtWSLBQCQsSpeVunvpuBe0aJTA8I83pOCIiAU1LVkgwUAkLEh/8soHMnYU8fHYnIl36sYmIHE5CTCT3nd6eXzfmMn7JNqfjiPikv+ZBIK+wjJETV3Ni24YMbp/idBwRkaBwcZ902jdO4OnxKyircDsdR+QgKmFB4KWfV5NXVMbDZ3XCGC3MKiJSHa4Iw0NndiJzZyEfzdrodByRg6iEBbiNOwt5d8YGLu6dRudmdZ2OIyISVAZ3SKF/6wa8MGE1+cVlTscROYBKWIB7+vsVuCIM957ewekoIiJBxxjDw2d1YtfeUkZNXut0HJEDqIQFsHkbdvPNoq3ceFJrmiTFOh1HRCQodUtL4ryezXhj6nq25hU5HUdkP5WwALVvYdaUxBhuPqm103FERILafad3wFp47odVTkcR2U8lLECNX7KNXzfmcu9p7amjhVlFRH6X9PrxXHtCCz77dTMrtu1xOo4IoBIWkMor3Dz7w0raNUrgkox0p+OIiISE209uS2JMJE99p9sZSWBQCQtAn87bzLqcvdw/tAOuCC1JISJSE5Ljo7nzlHZMWpnD9DU7nI4johIWaIpKK/jPT6vo06Iep3Vu7HQcEZGQcnX/FqQmx/HEt8txu3U7I3GWSliAeWdGJtv3lPDnMzpqYVYRkRoWG+Xi/qEdWLplD18tzHI6joQ5lbAAkldYxiuT1nBKx0b0bVXf6TgiIiHp3B7N6Jpal//7YRWl5bqdkThHJSyA/HfyGvJLynngDC3MKiLiLxERhvuHdmTz7iI+nq3bGYlzVMICxNa8It6ZnskFPVPp2ES3JxIR8aeT2jXk+Fb1eXHiGgpLy52OI2FKJSxAvPDTaqyFP53W3ukoIiIhzxjDA2d0ZEdBCW9Pz3Q6joQplbAAsCa7gNFzN3Flv+ak1493Oo6ISFjo06Iep3ZqxKjJa8ktLHU6joQhlbAA8O/vVxIfHckdJ7d1OoqISFi5b2gHCkrKGTV5ndNRJAyphDls/sbdjF+6jRsHtqZBQozTcUREwkrHJnU5r0cz3pmxnuw9xU7HkTCjEuYgay1Pj19Bw4Robqg3H57vCo8me94vGu10PBGRsPCn09pTXmEZOXG101EkzKiEOWjamh38sm4Xd3TIp874uyBvE2A978fdpSImIlILWjSow2V90/lk9iY27NzrdBwJIyphDrHW8u8fVtEsKZbLNz0GZUUHHlBWBBMedyaciEiYueuUdkS6DM/9uMrpKBJGVMIcMnFFNgs35XLXkHbE7Nng+6C8zbUbSkQkTDWqG8uIE1oxduEWlm/d43QcCRMqYQ5wuy3/98MqWjSI56I+aZCU5vvAQ20XEZEad+ugNiTERPLv71c6HUXChEqYA8Yv3cayrXv446ntiHJFwJBHICruwIOi4jzbRUSkViTFR3HLoDZMWJHN3MxdTseRMKASVssq3JbnflxF20YJnNsj1bOx+3AYNhKS0gHjeT9spGe7iIjUmusGtKRhQozmhkmtiHQ6QLgZuzCLNdkF/PfK3rgizG87ug9X6RIRcVh8dCS3Dm7DP75exi/rdtKvdQOnI0kI00hYLSqrcPPCT6vp3LQuZ3Rp4nQcERHx4crjm9Mo0TMaZq11Oo6EMJWwWvTFr5vJ3FnIvae3J6LyKJiIiASM2CgXt5/cltnrdzFz7U6n40gIUwmrJSXlFYycsIae6cmc0rGR03FEROQwLj0unaZJsRoNE79SCasl/5uziazcIu49vT3GaBRMRCSQ7RsNm7thN1NX73A6joQolbBaUFxWwUsT19C3VX1ObNvQ6TgiIlINwzPSSU2O02iY+I1KWC344JcNZOeXcO9pGgUTEQkW0ZER3HlKWxZsymXSyhyn40gIUgnzs8LScl6ZtJaB7RpyvC51FhEJKhf1SSO9vkbDxD9Uwvzsg182sHNvKX88tb3TUURE5ChFuSK465R2LM7K46fl2U7HkRCjEuZHRaUVvDZlHQPbNaRPi3pOxxERkWNwQa9UWjaI57kfV+F2azRMao7fSpgxJt0Y87MxZrkxZqkx5m4fxxhjzEhjzBpjzCJjTG9/5XHCh7M2sKOglLuHtHM6ioiIHKNIVwR3n9qO5Vv38MOybU7HkRDiz5GwcuBea20noB9wuzGmc5VjzgTaed9uAl7xY55aVVRawajJ6xjQtgEZLes7HUdERH6Hc3uk0jqlDs//uFqjYVJj/FbCrLVbrbW/ej/OB5YDqVUOOw94z3r8AiQbY5r6K1Nt+mj2RnYUlHD3EM0FExEJdq4Iwx9Pbc/K7fl8t0SjYVIzamVOmDGmJdALmFVlVyqwqdLnmzm4qGGMuckYM9cYMzcnJ/AvEy4uq2DU5LX0b92Avq00CiYiEgrO7taUNil1ePHbObif6waPJsPzXWHRaKejSZDyewkzxiQAnwN/tNbuqbrbx0MOGue11r5mrc2w1makpKT4I2aN+nj2RnLyS7j7VM0FExEJFa4Iwx1td7Ii18WPuxsBFvI2wbi7VMTkmPi1hBljovAUsA+ttV/4OGQzkF7p8zRgiz8z+VtxWQWvTFrL8a3q00/rgomIhJRhax+jpdnGi+UXsH/ZsLIimPC4o7kkOPnz6kgDvAkst9Y+d4jDxgLXeK+S7AfkWWu3+itTbfhk9kay80u0LpiISAiK3LOR21xfscS24md3z9925G12LpQELX+OhA0ArgZOMcYs8L6dZYy5xRhzi/eYb4F1wBrgdeA2P+bxu+KyCl6ZvJa+rerTv41GwUREQk5SGhe4ppFmshlZeTQsKc3RWBKcIv31xNbaafie81X5GAvc7q8MtW303E1s31PC88N7HvlgEREJPkMeIWrcXdxWMZaHy29gmrsrA2PXwpBHnE4mQUgr5teQknLPXLDjWtbTKJiISKjqPhyGjeSi+utoyk5Gcjn2nJGe7SJHSSWshoyeu5mtecXcPaQ9nulwIiISkroPJ+aehdx63knMKWvFLwlDnE4kQUolrAaUVbgZNWktvZsnM6CtRsFERMLB8Ix0GiXGMHLCaqejSJBSCasBY+ZnkZVbxB2ntNUomIhImIiNcnHTSa2ZuW4nczJ3OR1HgpBK2O9U4ba8MnktnZvW5eQOjZyOIyIitejK41vQMCFao2FyTFTCfqfxS7axLmcvt5+sUTARkXATF+3ihoGtmbp6Bws25TodR4KMStjvYK3l5Z/X0DqlDmd0beJ0HBERccDV/VpQLz5Ko2Fy1FTCfodJK3NYtnUPtw5qgytCo2AiIuGoTkwk15/Yiokrslm6Jc/pOBJEVMKOkbWWl35eQ2pyHOf3SnU6joiIOOjq/i1JiInklUlrnY4iQUQl7BjNWr+LeRt2c/Og1kS59G0UEQlnSXFRXNmvOd8u3krmjr1Ox5EgofZwjF7+eQ0NE2IYnpHudBQREQkA15/YikhXBK9O0WiYVI9K2DFYuCmXqat3cMPAVsRGuZyOIyIiAaBRYizDM9L4fF4W2/cUOx1HgoBK2DF4+ec1JMVFcVW/Fk5HERGRAHLzSW2osJY3pq5zOooEAZWwo7RyWz4/LNvOiBM8kzBFRET2Sa8fz7DuTflw1kZyC0udjiMBTiXsKP130hrio12MOKGl01FERCQA3Tq4LYWlFbw7Y4PTUSTAqYQdhQ079zJu4Rau6teCenWinY4jIiIBqEOTRE7t1Ih3ZqynsLTc6TgSwFTCjsJrU9YRGRHBDSe2cjqKiIgEsFsHt2V3YRkfz97kdBQJYCph1ZSTX8Kn8zZzUZ9UGtWNdTqOiIgEsD4t6nF8q/q8PmUdpeVup+NIgFIJq6Z3ZqynrMLNjQNbOx1FRESCwG0nt2XbnmK+nL/Z6SgSoFTCqqGgpJz3Z27gjC5NaJ2S4HQcEREJAie1a0iXZnUZNXkdFW7rdBwJQCph1fDJ7I3sKS7n5kFtnI4iIiJBwhjDbYPbsn7HXsYv2eZ0HAlAKmFHUFru5s1p6+nXuj4905OdjiMiIkHkjK5NaN2wDq9MXoO1Gg2TA6mEHcHYhVvYmlesUTARETlqrgjDjSe1ZknWHmau3el0HAkwKmGH4XZbXpuylo5NEhncPsXpOCIiEoQu6JVKw4QYXp2iWxnJgVTCDuPnldms2l7AzYNaY4xxOo6IiASh2CgXI05oweRVOazYtsfpOBJAVMIO49XJ60hNjuOc7s2cjiIiIkHsqn4tiI928ZpGw6QSlbBDmLdhN7Mzd3H9ia2IcunbJCIixy45PprhGemMXbCFrXlFTseRAKF2cQijJq8lOT6Ky/qmOx1FRERCwPUntsICb0/PdDqKBAiVMB/WZBfw47LtXNOvBfHRkU7HERGREJBeP56zujXlo1kb2VNc5nQcCQAqYT68NmUtMZERXHtCS6ejiIhICLn5pNYUlJTz0ayNTkeRAKASVsX2PcV8OT+L4RnpNEiIcTqOiIiEkK6pSZzQpgFvT1+vG3uLSlhVe0vKObFtQ92oW0RE/OLmQW3YvqeErxZkOR1FHKYSVkXrlATevq4vzRvEOx1FRERC0EntGtKxSSKvT12nWxmFOZUwERGRWmSM4aaTWrNqewGTVuY4HUccpBImIiJSy4b1aEbTpFhenbLW6SjiIJUwERGRWhbliuAPA1rxy7pdLNqc63QccYhKmIiIiAMu65tOYkykbmUUxlTCREREHJAY67kry3dLtpGVq1sZhSOVMBEREYfsWxT8vRmZjuYQZ6iEiYiIOCStXjxndG3CR7M3srek3Ok4UstUwkRERBx0/YmtyC8u59O5m5yOIrVMJUxERMRBvZvXo1fzZN6ekUmFW4u3hpNqlTBjTLwx5m/GmNe9n7czxpzj32giIiLh4YYTW7NhZyETlm93OorUouqOhL0NlAD9vZ9vBv7pl0QiIiJhZmiXxqQmx/HmtPVOR5FaVN0S1sZa+wxQBmCtLQKM31KJiIiEkUhXBCNOaMms9btYkpXndBypJdUtYaXGmDjAAhhj2uAZGRMREZEacGnfdOpEuzQaFkaqW8IeBcYD6caYD4EJwJ/9FUpERCTc1I2NYvhx6YxbuIVtecVOx5FaUK0SZq39AbgQGAF8DGRYa3/2Yy4REZGwc90JraiwlvdmZjodRWpBda+OnGCt3Wmt/cZa+7W1docxZoK/w4mIiIST5g3iOb1zYz6avZGi0gqn44ifHbaEGWNijTH1gYbGmHrGmPret5ZAs9oIKCIiEk5uGNia3MIyPv91s9NRxM+ONBJ2MzAP6Oh9v+/tK+Bl/0YTEREJPxkt6tE9LYm3pq/HrcVbQ9phS5i19gVrbSvgPmtta2ttK+9bD2vtS7WUUUREJGwYY7j+xFasy9nLpFXZTscRP6ruxPwXjTFdjTHDjTHX7HvzdzgREZFwdFa3pjSuG8M7MzY4HUX8qLoT8/8OvOh9Oxl4BjjXj7lERETCVpQrgquOb8GUVTmsyS5wOo74SXXXCbsYGAJss9ZeB/QAYvyWSkREJMxdfnxzol0RWq4ihFW3hBVba91AuTGmLpANtPZfLBERkfDWMCGGYT2a8dm8zewpLnM6jvjBEUuYMcYAi4wxycDreK6O/BWY7edsIiIiYW3ECS0pLK3g07lariIUHbGEWWst0NNam2utHQWcBlzrPS0pIiIiftItLYk+Lerx3sxMLVcRgqp7OvIXY8xxANbaTGvtIj9mEhEREa8RJ7Rkw85CLVcRgqpbwk4GZhpj1hpjFhljFhtjVMRERET87IyuTWhcN4a3p2c6HUVqWGQ1jzvTrylERETEpyhXBFf3a8G/f1jFmux82jZKdDqS1JDqLta6wdebv8OJiIgIXN63OdGREbyrxVtDSnVPR4qIiIhDGiTEMKx7Mz7/VctVhBKVMBERkSCg5SpCj0qYiIhIEOiWlkRGi3q8OyOTCi1XERJUwkRERILEiAEt2birkEkrtVxFKFAJExERCRJDuzShSd1Y3pmR6XQUqQEqYSIiIkEiyhXBVf2aM3X1DtZkFzgdR34nlTAREZEgclnf5kS7IvjgFy1XEexUwkRERIJIw4QYzurWhM/nbWZvSbnTceR3UAkTEREJMlf3b0F+STlfLdjidBT5HVTCREREgkzv5vXo1LQu783MxFotVxGsVMJERESCjDGGa/q3YMW2fOZt2O10HDlGKmEiIiJB6LyezUiMjeS9mZqgH6xUwkRERIJQfHQkF/dJ47slW8nJL3E6jhwDlTAREZEgdVW/FpRVWP43Z6PTUeQYqISJiIgEqTYpCQxo24CPZm2kvMLtdBw5SiphIiIiQezqfi3ZklfMhBW6n2SwUQkTEREJYqd2akTTpFitoB+EVMJERESCWKQrgiv6eu4nuS5H95MMJiphIiIiQe7SvulERhg++EUT9IOJSpiIiEiQa5QYyxldm/DpvE0Ulup+ksFCJUxERCQEXNO/JfnF5YzV/SSDhkqYiIhICDiuZT06NE7kvZkbdD/JIKESJiIiEgKMMVzVvwXLtu5h4eY8p+NINaiEiYiIhIjzezYjPtrFR7O0XEUwUAkTEREJEYmxUZzboxljF24hr6jM6ThyBCphIiIiwWzRaHi+KzyaDM935coGqyguczNmfpbTyeQIVMJERESC1aLRMO4uyNsEWMjbRLfpd9CtfgUfzdqoCfoBTiVMREQkWE14HMqKDtxWVsQVZWNYuT2feRt2O5NLqkUlTEREJFjlbfa5+dzSb0iIieSjWVpBP5D5rYQZY94yxmQbY5YcYv9gY0yeMWaB9+0Rf2UREREJSUlpPjfXSU7h/F7N+HrxVnILS2s5lFSXP0fC3gHOOMIxU621Pb1vj/sxi4iISOgZ8ghExR24LSoOhjzCFX1bUFru5rN5vkfLxHl+K2HW2inALn89v4iISNjrPhyGjYSkdMB43g8bCd2H07lZXXo13XAgAQAAGUpJREFUT+aj2ZqgH6giHf76/Y0xC4EtwH3W2qW+DjLG3ATcBNC8efNajCciIhLgug/3vPlwRd/m3P/ZImat30W/1g1qOZgciZMT838FWlhrewAvAmMOdaC19jVrbYa1NiMlJaXWAoqIiASzc7r/f3v3HpzVfd95/PPVDVkgwIDu4maMASFAlmUSO4lrxzYGbIyD7YZsMtvpzeMmndbttJ3strPTdmdnt7Odnd1st9nNtt10t43dOnV9N4Y4SePUTm3CVQLbYMxVF4QAgRDo+t0/noMj29wEevQ7zznv14xGz81HH/jNI3843/OcU63S4gL9LQfox1KwEubup9y9J7r9sqRCM5sRKg8AAElzXVG+Hm6s1YbmNnX19IWOg48JVsLMrNLMLLq9PMrSFSoPAABJ9OVPzdLAkHOAfgxl8xQVT0p6U9ICMztsZr9sZo+b2ePRSx6R1BwdE/YNSeudIwcBABhT8ytKdeuc6/XkWwc1PMz/ZuMkawfmu/uXLvP8n0n6s2z9fAAAkPHlT83WE3+3TW+836XPzufIn7jgjPkAACTcyvpKXV9SqO+8dSB0FIxACQMAIOGKC/O1rrFWm3Z16BgH6McGJQwAgBRYf+tMDQy5ntnCAfpxQQkDACAF5leU6pbZ1+uptw9xBv2YoIQBAJASX7x1pvZ1ntHmAydCR4EoYQAApMYDS6s0aUKBnnyLM+jHASUMAICUKCkq0IMN1Xp5Z5u6zw6EjpN6lDAAAFJk/a0zdW5gWM9vbw0dJfUoYQAApMiSmimqq5qspxhJBkcJAwAgRcxM65fPVEvrKTUf6Q4dJ9UoYQAApMzaZTWaUJDHAfqBUcIAAEiZKSWFun9JlZ7f1qre/sHQcVKLEgYAQAp98daZOt03qJd3toeOklqUMAAAUmj53Gm6YcZEDtAPiBIGAEAKmZm+eOtMbT5wQnuPng4dJ5UoYQAApNS6xloV5Jn+7u1DoaOkEiUMAICUKiudoHsWVegfthxR3+BQ6DipQwkDACDF1i+fqeNn+rVpV0foKKlDCQMAIMU+N79M1VOK9febD4eOkjqUMAAAUiw/z/TwLbV6fU+n2rrPho6TKpQwAABS7pFbauUuPbPlSOgoqUIJAwAg5WZPn6jlc6fp6c2H5O6h46QGJQwAAOjRW2q1v6tXb+8/ETpKalDCAACAVi+p0sSifD29mXOGjRdKGAAA0MQJBbp/aZVe2tmmM31c1Hs8UMIAAIAk6dGmmertH9LLO9tCR0kFShgAAJAkNc2+XnNnTNTTnDNsXFDCAACApMxFvR+5pVZv7T+u/cfOhI6TeJQwAADwoYcba5Vn0nd/yt6wbKOEAQCAD1VOKdbn5pfpH7Yc1tAw5wzLJkoYAAD4iEebatXWfU4/3nssdJREo4QBAICPuLeuQlNLCjlnWJZRwgAAwEdMKMjX2mXV2rirQ929A6HjJBYlDAAAfMKjTTPVPzis57dzUe9soYQBAIBPWFw9WQsrS/U0n5LMGkoYAAD4BDPTzzfN1I7D3Xqn/VToOIlECQMAABf00M01Ksw3zqCfJZQwAABwQdMmFunuhRV6dusRDQwNh46TOJQwAABwUY821arrTL++/87R0FEShxIGAAAu6uduKlNZ6QTOGZYFlDAAAHBRBfl5WtdYox+826nO032h4yQKJQwAAFzSw421Ghp2vbC9NXSURKGEAQCAS7qpolRLaqboma18SnIsUcIAAMBlrWusUfORU3q3/XToKIlBCQMAAJe1Zlm1CvKMvWFjiBIGAAAua8akCbpzQZme3XpEQ8MeOk4iUMIAAMAVWddYq45TfXrj/WOhoyQCJQwAAFyRzy8s1+TiAj2z5UjoKIlACQMAAFekuDBfDyyr1obmdvX0DYaOk/MoYQAA4Io93FijswND2tDcHjpKzqOEAQCAK9Y463rNnl6iZ7bwKclrRQkDAABXzMy07uZavbmvS0dOng0dJ6dRwgAAwKh84eYauUvPbuUA/WtBCQMAAKMya3qJls+Zpme2HJY75wy7WpQwAAAwausaa/R+5xntONwdOkrOooQBAIBRW720SkUFeRygfw0oYQAAYNQmFxdqRV2Fnt/eqv7B4dBxchIlDAAAXJWHG2t1ondAP3z3aOgoOYkSBgAArsrn5s/QjElFXMboKlHCAADAVSnIz9Pahhq99k6HTvb2h46TcyhhAADgqq1rrNHAkOuFHW2ho+QcShgAALhqdVWTtbCylE9JXgVKGAAAuGpmpnWNNdp68KT2dfaEjpNTKGEAAOCarG2oUZ5J/8hljEaFEgYAAK5JxeRi3T5vhp7b1spljEaBEgYAAK7Z2oZqHTzeqy0HT4aOkjMoYQAA4JqtrK/UhII8PbeNkeSVooQBAIBrVlpcqHsWVejFHW0aGOIyRleCEgYAAMbE2oZqHT/Trx/vORY6Sk6ghAEAgDFx54JyTbmuUM8ykrwilDAAADAmigrytHpJlTa2dOhM32DoOLFHCQMAAGPmoYZqnR0Y0qZdHaGjxB4lDAAAjJlb50xT9ZRiRpJXgBIGAADGTF6e6cGGGr2+55iO9fSFjhNrlDAAADCmHrq5WkPDrpd2tIWOEmuUMAAAMKYWVk7WwspSRpKXQQkDAABjbm1DjbYePKkDXWdCR4ktShgAABhzDzZUS5Ke29YaOEl8UcIAAMCYq5l6nZbPnaZntx2Ru4eOE0uUMAAAkBUPNdRoX+cZNR85FTpKLFHCAABAVqxeUqnCfOMA/YughAEAgKyYWlKkOxeU64XtrRoaZiT5cZQwAACQNQ811Ojo6T69+X5X6CixQwkDAABZc/eick2aUMBI8gIoYQAAIGuKC/O1sr5SG5rbdW5gKHScWKGEAQCArHqooUY9fYN6bffR0FFihRIGAACy6rZ501VeOoGR5MdQwgAAQFbl55nWLKvWD989qu7egdBxYoMSBgAAsm7NsmoNDLle3dUeOkpsUMIAAEDWLaudolnTSvTCdq4leV7WSpiZ/ZWZHTWz5os8b2b2DTPba2Y7zKwxW1kAAEBYZqY1y6r0xvtdOtbTFzpOLGRzT9i3Ja28xPOrJM2Pvh6T9M0sZgEAAIGtWVatoWHXKzvbQkeJhayVMHf/kaTjl3jJWkn/1zN+ImmqmVVlKw8AAAhrQUWp5pdP0gvbKWFS2GPCaiQdGnH/cPTYJ5jZY2a22cw2d3Z2jks4AAAwtjIjyWq9tf+42rrPho4TXMgSZhd47IJX93T3b7l7k7s3lZWVZTkWAADIlgeWZoZeL+1gb1jIEnZY0swR92sl8ZEJAAAS7IaySaqvmcynJBW2hD0v6V9Hn5L8tKRud6cWAwCQcGuWVmv74W4d6DoTOkpQ2TxFxZOS3pS0wMwOm9kvm9njZvZ49JKXJe2TtFfS/5b01WxlAQAA8fHAsmpJ0ospH0kWZGvD7v6lyzzvkr6WrZ8PAADiqWbqdWqafb1e2N6qr911Y+g4wXDGfAAAMO7WLKvWO+2n9V7H6dBRgqGEAQCAcbdqSaXyTKk+QJ8SBgAAxl15abFumzddL2xvVeYIpfShhAEAgCDWLK3W/q5eNR85FTpKEJQwAAAQxMr6ShXkmV7Ykc6RJCUMAAAEMbWkSHfcVKYXt7dqeDh9I0lKGAAACObBZdVq7T6nLQdPhI4y7ihhAAAgmHvqKjShIC+Vn5KkhAEAgGAmTSjQ3YvK9dLONg0ODYeOM64oYQAAIKg1S6t1rKdf//LB8dBRxhUlDAAABHXXwnJNLMpP3UiSEgYAAIIqLszXisWVeqW5Xf2D6RlJUsIAAEBwa5ZVqfvsgF7f0xk6yrihhAEAgOA+e2OZplxXqJd2tIWOMm4oYQAAILiigjytqKvQpl0d6hscCh1nXFDCAABALKxeWqXTfYN6/b1joaOMC0oYAACIhc/Mm5EZSe5Mx0iSEgYAAGLh/EjyeykZSVLCAABAbNyfopEkJQwAAMTGZ25Mz0iSEgYAAGKjMD9P9y3OjCTPDSR7JEkJAwAAsbJ6STSS3JPskSQlDAAAxMr5keTLCR9JUsIAAECsnB9Jbkr4SJISBgAAYmf1kir1JHwkSQkDAACxk4aRJCUMAADEThpGkpQwAAAQS/cvrU70SJISBgAAYun2edM1taRQL+1oDR0lKyhhAAAglgrz83RfXaW+t/toIkeSlDAAABBbq5dmPiX5o/c6Q0cZc5QwAAAQW+dHkkn8lCQlDAAAxFaSR5KUMAAAEGtJHUlSwgAAQKwldSRJCQMAALGW1JEkJQwAAMTe/QkcSVLCAABA7N12/sStCRpJUsIAAEDsfTiSTNC1JClhAAAgJ6xaUqkz/UP6cUKuJUkJAwAAOeH2eTNUWlygDS3toaOMCUoYAADICUUFebp3UYU27erQwNBw6DjXjBIGAAByxsr6SnWfHdBP9nWFjnLNKGEAACBn3HFTmUqK8vVKc+6PJClhAAAgZxQX5uuuBeXa2NKuoWEPHeeaUMIAAEBOWVlfqWM9/dq8/3joKNeEEgYAAHLKXQvLVVSQl/MjSUoYAADIKZMmFOiO+WV6taVdwzk8kqSEAQCAnLOqvlJt3ee0/fDJ0FGuGiUMAADknHsWVaggz7Qhh0eSlDAAAJBzppQU6vYbZ+iV5na55+ZIkhIGAABy0qr6Sh083qtdbadCR7kqlDAAAJCTVtRVKM+UsyNJShgAAMhJ0ydN0PK503L2VBWUMAAAkLNW1Vdp79Ee7T16OnSUUaOEAQCAnHXf4kpJuTmSpIQBAICcVTmlWI2zpubkSJISBgAActrK+kq1tJ7Swa7e0FFGhRIGAABy2qr6KknShpa2wElGhxIGAABy2sxpJVpcPTnnRpKUMAAAkPNW1Vdq68GTaus+GzrKFaOEAQCAnLcyGkm+mkN7wyhhAAAg591YPknzyyfl1EiSEgYAABJhVX2l3t5/XMd6+kJHuSKUMAAAkAgr66s07NLGlo7QUa4IJQwAACTCoqpSzZpWoo27cmMkSQkDAACJYGZaUVehN/Z26fS5gdBxLosSBgAAEuO++kr1Dw3rh+92ho5yWZQwAACQGI2zrtf0iUV6tSX+I0lKGAAASIz8PNO9dRX64bud6hscCh3nkihhAAAgUVYsrlBP36DeeL8rdJRLooQBAIBEuX3eDE0syo/9qSooYQAAIFGKC/N158JybdrVoaFhDx3noihhAAAgcVbUVehYT5+2HToROspFUcIAAEDi3LWwXIX5pldjPJKkhAEAgMSZXFyo2+bN0Kst7XKP50iSEgYAABLpvsUVOtDVq/c6ekJHuSBKGAAASKR76ypkptieuJUSBgAAEqm8tFg3z5wa2wt6U8IAAEBi3be4Us1HTunwid7QUT6BEgYAABJrxeJKSdKmXfH7lCQlDAAAJNbcGRN1U8WkWB4XRgkDAACJdt/iSr31wXGdONMfOspHUMIAAECirair1LBL39sdr5EkJQwAACRafc1kVU8p1saYHRdGCQMAAIlmZlqxuFI/eq9Tvf2DoeN8iBIGAAASb8XiCvUNDutH7x0LHeVDlDAAAJB4y+dM09SSQm2M0ackKWEAACDxCvLzdPfCCn1vd4cGhoZDx5FECQMAAClx3+IKnTo3qLc+OB46iiRKGAAASInPzS9TcWFebE7cmtUSZmYrzexdM9trZl+/wPN3mlm3mW2Lvv5dNvMAAID0uq4oXz93U5k2tnTI3UPHyV4JM7N8Sf9D0ipJdZK+ZGZ1F3jp6+7eEH39cbbyAAAA3FtXqfZT59R85FToKFndE7Zc0l533+fu/ZKekrQ2iz8PAADgkj6/sFx5Jm3cFX4kmc0SViPp0Ij7h6PHPu42M9tuZq+Y2eILbcjMHjOzzWa2ubOzMxtZAQBACkybWKSmOdO0KQZnz89mCbMLPPbxAewWSbPdfZmk/y7p2QttyN2/5e5N7t5UVlY2xjEBAECarKir0Dvtp3XoeG/QHNksYYclzRxxv1ZS68gXuPspd++Jbr8sqdDMZmQxEwAASLl76yokKfi1JLNZwt6WNN/M5ppZkaT1kp4f+QIzqzQzi24vj/J0ZTETAABIudnTJ+rmWVPVcy7sdSQLsrVhdx80s1+X9KqkfEl/5e4tZvZ49Pz/lPSIpF8zs0FJZyWt9zh8ZhQAACTaM792u6L9QMFYrnWepqYm37x5c+gYAAAAl2VmP3X3pgs9xxnzAQAAAqCEAQAABEAJAwAACIASBgAAEAAlDAAAIABKGAAAQACUMAAAgAAoYQAAAAFQwgAAAAKghAEAAARACQMAAAiAEgYAABAAJQwAACAAShgAAEAAlDAAAIAAKGEAAAABUMIAAAACoIQBAAAEQAkDAAAIgBIGAAAQACUMAAAgAEoYAABAAObuoTOMipl1SjowDj9qhqRj4/BzcOVYk/hhTeKJdYkf1iSexmNdZrt72YWeyLkSNl7MbLO7N4XOgZ9hTeKHNYkn1iV+WJN4Cr0ujCMBAAACoIQBAAAEQAm7uG+FDoBPYE3ihzWJJ9YlfliTeAq6LhwTBgAAEAB7wgAAAAKghAEAAARACYuYWb6ZbTWzF6P708xsk5ntib5fHzpjmpjZfjPbaWbbzGxz9BhrEpiZTTWz75rZO2a228xuY13CMbMF0Xvk/NcpM3uCNQnPzH7LzFrMrNnMnjSzYtYlLDP7zWg9WszsieixoGtCCfuZ35S0e8T9r0t6zd3nS3otuo/xdZe7N4w4hwtrEt5/k7TB3RdKWqbMe4Z1CcTd343eIw2SbpHUK+kfxZoEZWY1kn5DUpO710vKl7RerEswZlYv6VclLVfmd9cDZjZfgdeEEibJzGol3S/pL0Y8vFbSX0e3/1rSQ+OdC5/AmgRkZpMl3SHpLyXJ3fvd/aRYl7i4W9L77n5ArEkcFEi6zswKJJVIahXrEtIiST9x9153H5T0T5K+oMBrQgnL+K+Sfk/S8IjHKty9TZKi7+UhgqWYS9poZj81s8eix1iTsG6Q1Cnp/0Sj+78ws4liXeJivaQno9usSUDufkTSn0o6KKlNUre7bxTrElKzpDvMbLqZlUhaLWmmAq9J6kuYmT0g6ai7/zR0FnzEZ9y9UdIqSV8zsztCB4IKJDVK+qa73yzpjBinxIKZFUl6UNLTobNAio4rWitprqRqSRPN7CthU6Wbu++W9CeSNknaIGm7pMGgoUQJk6TPSHrQzPZLekrS583sbyR1mFmVJEXfj4aLmD7u3hp9P6rMMS7LxZqEdljSYXf/l+j+d5UpZaxLeKskbXH3jug+axLWPZI+cPdOdx+Q9Iyk28W6BOXuf+nuje5+h6TjkvYo8JqkvoS5+79x91p3n6PM7vzvu/tXJD0v6Reil/2CpOcCRUwdM5toZqXnb0taocyuZNYkIHdvl3TIzBZED90taZdYlzj4kn42ipRYk9AOSvq0mZWYmSnzXtkt1iUoMyuPvs+StE6Z90zQNeGM+SOY2Z2SfsfdHzCz6ZL+XtIsZd5Qj7r78ZD50sLMblBm75eUGYF9x93/A2sSnpk1KPMBliJJ+yT9ojL/mGNdAomObzkk6QZ3744e470SmJn9kaQvKjPy2irpVyRNEusSjJm9Lmm6pAFJv+3ur4V+r1DCAAAAAkj9OBIAACAEShgAAEAAlDAAAIAAKGEAAAABUMIAAAACoIQBiA0zm2pmXw2d43LM7Ino1BAAcNUoYQDiZKqk4CXMMi71+/EJZS7KPJptFlxbKgBJQwkDECf/SdI8M9tmZv/ZzH7XzN42sx3RyS9lZnPM7J3oAuLNZva3ZnaPmf2zme0xs+XR6/7QzP6fmX0/evxXz/+QS2x3t5n9uaQtkmaa2TfNbLOZtYx43W8ocz3AH5jZD6LHekZs+xEz+3Z0+9tm9l+i1/2Jmc0zsw3RhelfN7OF4/B3CiCm+JcZgDj5uqR6d28wsxWSHlHmuqEm6fnoQu4HJd0o6VFJj0l6W9K/kvRZZS5i/W8lPRRtb6mkT0uaKGmrmb0kqV7S/Itsd4GkX3T3r0qSmf2+ux83s3xJr5nZUnf/hpn9tqS73P3YFfyZbpJ0j7sPmdlrkh539z1m9ilJfy7p81f/1wUgl1HCAMTViuhra3R/kjLl6aAyF0feKUlm1iLpNXd3M9spac6IbTzn7mclnY32Ri1XpqxdbLsH3P0nI/77nzezx5T5XVklqU7SjlH+OZ6OCtgkZS7i/HTmcoKSpAmj3BaABKGEAYgrk/Qf3f1/feRBszmS+kY8NDzi/rA++nvt49dl88ts98yI+3Ml/Y6kW939RDRiLL5I1pE/5+OvOb/NPEkn3b3hItsAkDIcEwYgTk5LKo1uvyrpl6I9SDKzGjMrH+X21ppZcXSR3juVGV1e6XYnK1Ogus2sQtKqi+SUpA4zWxQdzP+FCwVx91OSPjCzR6Ofa2a2bJR/HgAJwp4wALHh7l3RAfbNkl6R9B1Jb0bjux5JX5E0NIpNviXpJUmzJP17d2+V1Gpmiy63XXffbmZbJbVI2ifpn0c8/S1Jr5hZm7vfpcyxbC9KOiSpWZkR54V8WdI3zewPJBVKekrS9lH8eQAkiLl/fG89AOQ+M/tDST3u/qehswDAhTCOBAAACIA9YQAAAAGwJwwAACAAShgAAEAAlDAAAIAAKGEAAAABUMIAAAAC+P+tll7bpSPUHQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化数据\n",
    "fig3 = plt.figure(figsize=(10,10))\n",
    "plt.plot(X_range,y_2_range_predict)#这里画图用X_range是因为X_2_range和X_5_range的维度过高，无法将图形展示出来。\n",
    "plt.scatter(X_train,y_train)\n",
    "plt.scatter(X_test,y_test)\n",
    "\n",
    "plt.title('polynomial prediction result (2)')\n",
    "plt.xlabel('temperature')\n",
    "plt.ylabel('rate')\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig4 = plt.figure(figsize=(10,10))\n",
    "plt.plot(X_range,y_5_range_predict)\n",
    "plt.scatter(X_train,y_train)\n",
    "plt.scatter(X_test,y_test)\n",
    "\n",
    "plt.title('polynomial prediction result (5)')\n",
    "plt.xlabel('temperature')\n",
    "plt.ylabel('rate')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "> 参考: 机器学习之——过拟合欠拟合（实战）\n",
    "https://blog.csdn.net/weixin_46344368/article/details/106739989\n",
    "\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "PyCharm (Learning)",
   "language": "python",
   "name": "pycharm-bd849f12"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
